Data processor, program updating method and storage medium

ABSTRACT

A data processor capable of preventing a system from starting up improperly due to incomplete program updating. The data processor receives, by way of an external interface, a program which is sent by communicating medium such as a broadcast wave or a telephone network from an external device and stores the received program into a memory B which is different from a memory A storing a program for the system when a version of the received program is newer than that of a program currently executed by the data processor, thereby starting up an MPU at the next time with the program stored in the memory B.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to a data processor, a programupdating method and a storage medium, and more specifically a dataprocessor, a program updating method and a storage medium which update aprogram with data sent from outside.

[0003] 2. Related Background Art

[0004] In a data processor which executes various kinds of applicationprograms such as those for personal data management functions, it isgeneral to write a program such as firmware for obtaining executingenvironments for the application programs into a nonvolatility memory.

[0005] The program written in the nonvolatility memory is rewritten whena bug exists in the program or when a version of the program is to beupgraded.

[0006] Japanese Patent Application Laid-Open No. 6-44064 discloses amethod to rewrite the program stored in the nonvolatility memory. Thismethod is configured by receiving and temporarily holding an updatingprogram sent from outside by way of a broadcast wave or a telephonenetwork, and automatically rewriting the program stored in thenonvolatility memory into the received program.

[0007] Furthermore, digital broadcast has a high possibility to providenew kinds of services one after another as compared with conventionalanalog broadcast. Accordingly, a receiver for the digital broadcastwhich is newly purchased may soon be out-of-date when its functionsremain unchanged from those at a time of purchase and cannot cope withthe new kinds of services.

[0008] In order to solve such a problem, there is a concept to modify asoftware program to cope with the new kinds of services without changingany hardware of the receiver. That is, there is a method which sends aprogram in a condition overlapped with a broadcast wave for downloading,thereby updating a program in an instrument which is capable ofreceiving the digital broadcast.

[0009] However, the method disclosed by Japanese Patent ApplicationLaid-Open No. 6-44064 is configured by rewriting the program stored inthe nonvolatility memory into a new program and may update the programincompletely when a power supply is intercepted due to power failureduring the updating of the program, thereby resulting in a situationwhere a system cannot start up due to the incomplete updating of theprogram.

[0010] Furthermore, the method does not take an operating condition ofthe instrument into consideration for downloading and may update theprogram even while the receiving instrument is operating, therebyresulting in an erroneous operation of the instrument.

SUMMARY OF THE INVENTION

[0011] A primary object of the present invention is to provide a dataprocessor, a program updating method and a storage medium which arecapable of preventing a system from being started up improperly due toincomplete program updating.

[0012] Another object of the present invention is to provide a dataprocessor, a program updating method and a storage medium which update aprogram on the basis of an operating condition on a receiving side.

[0013] In order to attain these objects, the data processor according tothe present invention is a data processor operating on the basis of aprogram stored in first memory means, and comprising receiving meanswhich receives an updating program sent from outside, comparing meanswhich compares a version of the program stored in the first memory meanswith a version of the updating program, and control means which storesthe updating program into second memory means different from the firstmemory means when the comparing means judges that the version of theupdating program is newer than the version of the program stored in thefirst memory means.

[0014] Furthermore, the data processor according to the presentinvention is a data processor having processing means which processesdata transmitted from outside on the basis of a program stored in thefirst memory means and outputs the data to an output device, andcomprising receiving means which receives an updating program sent fromoutside, control means which stores the received updating program intosecond memory means different from the first memory means, and changingmeans which changes processing by the processing means on the basis ofthe program stored in the first memory means to processing by theprocessing means on the basis of the updating program stored in thesecond memory means.

[0015] Furthermore, the data processor according to the presentinvention is a data processor having processing means which processesdata sent from outside on the basis of a program stored in memory meansand outputs the data to an output device, and comprising judging meanswhich judges whether or not processing is executed by the processingmeans, receiving means which receives an updating program sent fromoutside, memory control means which stores the received updating programinto the memory means when the processing is not executed by theprocessing means and a processing control means which controls theprocessing means on the basis of the updating program stored in thememory means.

[0016] Moreover, the program updating method according to the presentinvention is a program updating method which updates a program in a dataprocessor operating on the basis of a program stored in first memorymeans, and is configured to receive an updating program sent fromoutside using receiving means, compare a version of the program storedin the first memory means with a version of the updating program andstore the updating program into second memory means different from thefirst memory means when the comparison indicates that the version of theupdating program is newer than the version of the program stored in thefirst memory means.

[0017] Moreover, the program updating method according to the presentinvention is a program updating method which updates a program in a dataprocessor having processing means for processing data sent from outsideon the basis of a program stored in first memory means and outputtingthe data to an output device, and is configured to receive an updatingprogram sent from outside using receiving means, store the receivedupdating program into the second memory means different from the firstmemory means and change processing by the processing means on the basisof the program stored in the first memory means to processing by theprocessing means on the basis of the updating program stored in thesecond memory means.

[0018] Moreover, the program updating method according to the presentinvention is a program updating method which updates a program in a dataprocessor having processing means for processing data sent from outsideon the basis of a program stored in memory means and outputting the datato an output device, and is configured to judge whether or notprocessing is executed by the processing means, store an updatingprogram sent from outside into the memory means when the processing isnot executed by the processing means and control the processing means onthe basis of the updating program stored in the memory means.

[0019] In addition, the storage medium according to the presentinvention is a memory means which is to be used in a data processoroperating on the basis of a program stored in first memory means, andcomprises a step to receive an updating program sent from outside usingreceiving means, a step to compare a version of the program stored inthe first memory means with a version of the updating program and a stepto store the updating program into second memory means different fromthe first memory means when the comparison indicates that the version ofthe updating program is newer than the version of the program stored inthe first memory means.

[0020] In addition, the storage medium according to the presentinvention is a storage medium which is to be used in a data processorhaving processing means for processing data sent from outside on thebasis of a program stored in first memory means and outputting the datato an output device, and comprises a step to receive an updating programsent from outside using receiving means, a step to store the receivedupdating program into second memory means different from the firstmemory means and a step to change processing by the processing means onthe basis of the program stored in the first memory means to processingby the processing means on the basis of the updating program stored inthe second memory means.

[0021] In addition, the storage medium according to the presentinvention is a storage medium which is to be used in a data processorhaving processing means for processing data sent from outside on thebasis of a program stored in memory means and outputting the data to anoutput device, and comprises a step to judge whether or not processingis executed by the processing means, a step to store an updating programsent from outside into the memory means when the processing is notexecuted by the processing means and a step to control the processingmeans on the basis of the updating program stored in the memory means.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022]FIG. 1 is a block diagram showing a configuration of a firstembodiment of the data processor according to the present invention;

[0023]FIG. 2 is a diagram illustrating status transition of processes toupdate a program in the data processor shown in FIG. 1;

[0024]FIG. 3 is a diagram illustrating status transition of processes toupdate a program in a second embodiment of the data processor shown inFIG. 1;

[0025]FIG. 4 is a block diagram showing a configuration of a thirdembodiment of the data processor according to the present invention;

[0026]FIG. 5 is a diagram illustrating status transition of processes toupdate a program in the data processor shown in FIG. 4;

[0027]FIG. 6 is a block diagram showing a configuration of an IRD(integrated receiver decoder) for digital broadcasting preferred as afourth embodiment of the present invention;

[0028]FIG. 7 is a flowchart illustrating data processings by the IRDpreferred as the fourth embodiment;

[0029]FIG. 8 is a flowchart illustrating data processings by the IRDpreferred as the fourth embodiment;

[0030]FIG. 9 is a flowchart illustrating data processings by the IRDpreferred as the fourth embodiment;

[0031]FIG. 10 is a flowchart illustrating data processings by an IRDpreferred as a fifth embodiment of the present invention;

[0032]FIG. 11 is a flowchart illustrating data processings by the IRDpreferred as the fifth embodiment of the present invention; and

[0033]FIG. 12 is a diagram showing a screen for program updating.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0034] Now, the preferred embodiments of the present invention will bedescribed with reference to the accompanying drawings.

[0035] (First Embodiment)

[0036]FIG. 1 is a block diagram showing a configuration of a dataprocessor preferred as the first embodiment of the present invention.

[0037] The data processor comprises, as shown in FIG. 1, an MPU 10 whichcontrols a system according to a program stored in a flash memory A 12or a flash memory B 13, an EEPROM 11 which stores a jump instructionwhich indicates whether MPU 10, after a reset process is released,selects the program stored in the flash memory A 12 or the flash memoryB 13, a RAM 14 which provides a work area for the MPU 10 and an externalinterface 17 serving as an interface with external devices (not shown):the MPU 10 being connected to each of the blocks by way of a common bus18. Needless to say, other members are connected as occasion demands.

[0038] A common bus 18 has addresses of 20 bits: addresses FFFFOhthrough FFFFFh assigned to the EEPROM 11, addresses 0OOOOh through3FFFFh assigned to the flash memory A 12, addresses 4OOOOh through7FFFFh assigned to the flash memory B 13 and addresses 8OOOOh throughBFFFFh assigned to the RAM 14.

[0039] Then, description will be made of processings performed by theMPU 10 in the data processor with reference to FIG. 2.

[0040]FIG. 2 is a diagram showing status transition of processes toupdate a program in the data processor shown in FIG. 1.

[0041] The processes are carried out on the basis of a program stored inthe flash memory A 12 or B 13 and includes a processing to update theprogram.

[0042] When a reset process is released by turning on a power sourcewith a power switch (not shown)(step S210), the MPU 10 designates theaddresses FFFFOh and reads out contents of EEPROM 11 assigned to thisarea. Since a jump instruction written in the contents, the MPU 10selects the program stored in the flash memory A 12 or B 13 on the basisof the jump instruction and starts up the system according to theselected program (step S211). Let us assume here that the flash memory A12 is selected and the MUP 10 executes the processing according to theprogram stored in the flash memory A 12.

[0043] In a condition where the system is started up as described above(step S212), the MPU 10 receives a program transmitted by acommunicating medium such as a broadcast wave or a telephone networkfrom an external device by way of an external interface 17 (step S213),checks whether or not the program is completely received on the basis ofa check sum or the like (step S214) and erase the received program whenthe reception of the program is not normally completed (step S221). TheMPU 10 terminates the processing in this way (step S222).

[0044] When the reception of the program is normally completed, thereceived program is temporally stored in a RAM 14 (step S215).

[0045] Then, the MPU 10 judges, on the basis of data such as IDcontained in the received program, whether or not the received programapplies to the system and whether or not a version of the receivedprogram is newer than that of a currently used program (step S216). Whenthe received program does not apply to the system or when the version ofthe received program is not newer than that of the currently usedprogram, the MPU 10 judges the received program as an unwanted programand erases it (step S221).

[0046] When the received program applies to the system and its versionis newer than that of the currently used program, the MPU 10 judges thatthe received program is a program to be updated and checks the programfor its operation (step S217).

[0047] To check the received program for its operation, the MPU 10starts it up and checks its operation with an automatic operation checkprogram. When the MPU 10 recognizes that the received program does notoperate normally as a result of the operation check, it erases thereceived program (step S221).

[0048] When the MPU 10 confirms that the received program operatesnormally as a result of the operation check, it writes the receivedprogram i.e. the updating program into the flash memory B 13 which isnot selected (step S218) and operates the system in accordance withcontents of the program stored in the flash memory B 13 (step S219).When the system does not operate normally, the MPU 10 terminates theprocessing in a condition where the program is written in the flashmemory B 13 (step S222). When the system operates normally, the MPU 10rewrites the contents of the EEPROM 11 so that the flash memory B 13 isselected when the power source is turned on the next time (step S220)and terminates the processing (step S222).

[0049] When the received program is a program to be updated and cannormally operates as described above, the received program is writteninto the flash memory B 13 and the flash memory B 13 is selected whenthe power source is turned on the next time, whereby a program having anew version is started up when the power source is turned on the nexttime.

[0050] When the system does not operate normally in accordance with thecontents of the flash memory B 13, the flash memory A 12 is selectedwhen the power source is turned on the next time, whereby the systemoperates in accordance with the contents of the flash memory A 12.Accordingly, the data processor is capable of preventing the system frombeing misoperated or not started due to incomplete program updating intothe flash memory B 13.

[0051] When the flash memory B 13 is selected, the updating program iswritten into the flash memory A 12, whereby a program having a newestversion is stored in the flash memory A 12 and a program having an olderversion is stored in the flash memory B 13.

[0052] (Second Embodiment)

[0053] Now, the second embodiment of the present invention will bedescribed with reference to FIG. 3.

[0054]FIG. 3 shows status transition of processes to update a program inthe second embodiment of the data processor shown in FIG. 1. The secondembodiment uses members which are similar to those of the firstembodiment and not described in particular.

[0055] The second embodiment is configured to store an automaticoperation check program and a jump instruction in the EEPROM 11, storeprograms having different versions in the flash memory A 12 and theflash memory B 13, check the programs for their operations to judgewhether or not the programs operate abnormally before executing theprogram in a flash memory selected in accordance with the jumpinstruction, and select the other flash memory when the program in theselected flash memory operates abnormally to execute the program storedin the other flash memory.

[0056] When the reset process is released by turning on the power source(step S310), the MPU 10 starts up the automatic operation check programof the EEPROM 11 and checks contents of flash memory designated by thejump instruction stored in the EEPROM 11 (step S311) as shown in FIG. 3.Assuming that the flash memory A 12 is selected, the MPU 10 checkscontents of program stored in the flash memory A 12 with the automaticoperation check program. When the MPU 10 confirms that the programoperates normally with the automatic operation check program, the MPU 10operates the system in accordance with the contents of the programstored in the flash memory A 12 (step S313) and terminates theprocessing (step S316).

[0057] When the MPU 10 confirms that the selected program does notoperate normally with the automatic operation check program, the MPU 10checks contents of the flash memory B 13 with the automatic operationcheck program (step S312) and, when it confirms that the program doesnot operate normally, it terminates the processing (step S316).

[0058] After confirming that the program stored in the flash memory B 13operates normally, the MPU 10 rewrites contents of the EEPROM 11 so thatthe flash memory B 13 is selected when the power source is turned on thenext time (step S314), operates the system in accordance with thecontents of the program stored in the flash memory B 13 (step S315) andterminates the processing (step S316).

[0059] (Third Embodiment)

[0060] Now, the third embodiment of the present invention will bedescribed with reference to FIGS. 4 and 5.

[0061]FIG. 4 is a block diagram showing a configuration of a dataprocessor preferred as the third embodiment and FIG. 5 shows statustransition of processes to update a program in the data processor shownin FIG. 4.

[0062] The data processor preferred as the third embodiment comprises,as shown in FIG. 4, an MPU 40 which executes process control includingsystem control in accordance with a program stored in a ROM 41, a flashmemory 42 which stores a version upgrading program for upgrading aversion of the program stored in the ROM 41, a RAM 44 which provides awork area for the MPU 40, an auxiliary memory device 46, a memoryinterface 45 serving as an interface for the auxiliary memory device 46and an external interface 47 serving as an interface for externaldevices (not shown): the MPU 40 being connected to each of the blocks byway of a common bus 48. Needless to say, other members are connected asoccasion demands.

[0063] The program stored in the ROM 41 (system program) is afactory-shipped program. Together with the system program, an automaticoperation check program is stored in the ROM 41.

[0064] Processing executed by the MPU 40 in the data processor will bedescribed with reference to FIG. 5.

[0065] When a reset process is released by turning on a power supplywith a power switch (not shown) (step S507), the MPU 40 reads out theautomatic operation check program stored in the ROM 41 and starts upthis program to check contents of the flash memory 42 with the automaticoperation check program (step S508). Since the flash memory 42 does notstore a version upgrading program until it is taken from outside, theMPU 40 starts up the system with the program stored in the ROM 41 (stepS511).

[0066] When the system is started up and the MPU 40 receives a programtransmitted by a communicating medium such as a broadcast wave or atelephone network from an external device by way of the externalinterface 47 during operation of the system (step S513), the MPU 40checks whether or not the reception of the program is completed on thebasis of a check sum (step S514) and when the reception of the programis not completed normally, it erases the received program (step S521)and terminates the processing (step S522).

[0067] When the reception of the program is completed normally, incontrast, the MPU 40 temporarily stores this program into the RAM 44(step S515). Then, the MPU 40 judges whether or not the received programis applicable to the system of the data processor and has a versionwhich is newer than that of a currently operating program on the basisof data such as ID contained in the received program (step S516).

[0068] When the received program is not applicable to the system of thedata processor or when the version of the received program is not newerthan the version of the currently operating program, the MPU 40 judgesthis received program as an unwanted program and erases it (step S521).

[0069] When the received program is applicable to the system of the dataprocessor and has a version newer than that of the currently operatingprogram, the MUP 40 judges that the received program is a versionupgrading program and checks the program for its operation (step S517).For this operation check, the MPU 40 starts up the received program andchecks its operation with the automatic operation check program. Whenthe MPU 40 confirms that received program does not operate normally as aresult of the operation check, it erases the received program (stepS521).

[0070] When the MPU 40 confirms that the received program operatesnormally as a result of the operation check, the MPU 40 writes thereceived program as a version upgrading program into the flash memory 42(step S518) and operates the system in accordance with the programstored in the flash memory 42 (step S519). When the system does notoperate normally, the MPU 40 terminates the processing in a conditionwhere the program is written in the flash memory 42 (step S522). Whenthe system operates normally, the MPU 40 writes the received programinto the auxiliary memory device 46 by way of the memory deviceinterface 45 (step S520) and terminates the processing (step S522).

[0071] When the received program is a version upgrading program whichoperates normally, the received program is written into the flash memory42 and the auxiliary memory device 46 respectively. Since the versionupgrading program stored in the flash memory is selected when the powersource is turned on the next time, the data processor starts up the newversion program.

[0072] When the power source is turned on the next time (step S507), theMPU 40 reads out the automatic operation check program from the ROM 41,starts up this program and checks operation of the version upgradingprogram stored in the flash memory 42 with the automatic operation checkprogram (step S508). When the MPU 40 confirms that the version upgradingprogram operates normally with the automatic operation check program, itoperates the system program stored in the ROM 41, thereby starting up asystem having an upgraded version (step S511).

[0073] When the MPU 40 confirms that the version upgrading program doesnot operate normally with the automatic operation check program, incontrast, the MPU 40 reads out the version upgrading program from theauxiliary memory device 46 by way of the memory device interface 45 andwrites it into the flash memory 42 (step S509). The MPU 40 operates thesystem program stored in the ROM 41 and the version upgrading programstored in the flash memory 42, thereby starting up the system having theupgraded version (step S511). The MPU 40 subsequently repeatedlyexecutes operations similar to those described above.

[0074] Since the version upgrading program is stored into both the flashmemory 42 and the auxiliary memory device 46 as described above, the MPU40 can read out the version upgrading program stored in the auxiliarymemory device 46 and start up the system having the upgraded versioneven when the version upgrading program stored in the flash memory 42 iserased for some cause. Even when the version upgrading program is eraseddue to power failure occurring in the course of its writing, the programhaving an older version stored in the auxiliary memory device 46 and thefactory-shipped system program stored in the ROM 41 prevent the systemfrom misoperating or being incapable of starting up due to incompleteprogram updating into the flash memory 42.

[0075] (Fourth Embodiment)

[0076] Then, description will be made of the fourth embodiment withreference to FIGS. 6 through 9. The fourth embodiment is an examplewherein an IRD (integrated receiver decoder) is used as a dataprocessor.

[0077]FIG. 6 is a block diagram illustrating a configuration of an IRD(integrated receiver decoder) for digital broadcasting preferred as afourth embodiment. A broadcast wave is transmitted through a DVB(digital video broadcasting system), whereas images and voice aretransmitted in accordance with MPEG2 of ISO/IEC 61818-2 and MPEG2 ofISO/IEC 61818-3 respectively.

[0078] A reference numeral 610 represents a program run portion whichcontrols the IRD as a whole in accordance with a program and a referencenumeral 606 designates a common bus which connects the program runportion 610 to each member.

[0079] A tuner 601 which receives a digital broadcast wave and selects adesired frequency as designated by the program run portion 610 providesa signal, which is subjected to demodulation, check for an error causedin a communication path and error correction in a demodulation and errorcorrection portion 602. Then, the signal is sent to a demultiplexer 603which selects a stream having a desired program identifier (PID) out ofmultiplexed streams, and outputs the stream in a condition where it isdivided into an image-voice stream and a data stream which containsprogram information, program notification information and program data.

[0080] The data stream is sent to a loader portion 607 and the programrun portion 610. An image-voice stream signal selected by thedemultiplexer 603 is decoded by an AV decoder 604 into MPEG2 image dataand voice data, which are reproduced into analog video signals andanalog voice signals respectively by a reconstruction and screensynthesis portion 605 and output. Furthermore, the reconstruction andscreen synthesis portion 605 is cable of synthesizing an EPG screen, anoperation screen or the like as designated by the program run portion610 and providing them as video signals.

[0081] A reference numeral 611 represents an input portion whichtransmits user's operations to the program run portion 610 as input datafrom keys and a remote controller. A power switch and an OK key areincluded in this input portion 611.

[0082] A reference numeral 607 designates a loader portion which selectspredetermined data from the data stream, thereby performing hardwarestoring control, software information storing control and programstoring control. A reference numeral 608 denotes a hardware informationstoring portion for storing hardware information such as a manufacturingcompany and a model number which are not rewritten. A reference numeral609 represents a software information storing portion for storing asoftware version number from the loader portion 607 which is rewritteninto a downloaded version by a program updating work.

[0083] A reference numeral 612 designates a memory control portion whichcontrols a nonvolatility program storing portion A 614, a nonvolatilityprogram storing portion B615 and a work area RAM 616. The nonvolatilityprogram storing portion A 614 and the nonvolatility program storingportion B 615 are composed of non-volatile memories which hold theircontents even while they are not electrically energized and provided asareas to store programs having different versions, and the memorycontrol portion 612 determines, at a power on time, either of theprograms stored in the nonvolatility program storing portions which isto be executed. When a program to be updated from the loader portion 607is downloaded and updated, the memory control portion 612 determineseither of the nonvolatility program storing portions into which theprogram is to be written. The work area RAM 616 is used by the programrun portion 610 as a work area RAM during execution of a program.

[0084] A reference numeral 613 is a display device which uses a liquidcrystal panel, a plasma panel or the like, and displays messages andoperating conditions such as “standby,” “received program channel,”“kind of network,” “on program updating,” “completion of programupdating” and “failure of program updating” in pictograms, icons andcharacters.

[0085] A reference numeral 617 represents a timer portion which can beset by transmitting a command from the program run portion 610 by way ofthe common bus 606 and is capable of notifying a predetermined time tothe program run portion 610 when the predetermined time has elapsed.

[0086] A reference numeral 618 designates a power supply portion whichcan be set, even with a power switch turned off and a power supply cordis plugged in, in a standby condition where power is supplied only tothe program run portion 610 and the timer portion 617, whereas otherportions are deenergized by transmitting a command from the program runportion 610 by way of the common bus 606 since the power switch iscontained in the input portion 611. The power supply portion 618 is notset in the standby condition upon turning off the power switch but canbe set in this condition after the program run portion 610 executes someprocessing. When the power switch is turned on in the standby condition,the IRD is electrically energized as a whole and set in an operatingcondition. Reference numerals 619 and 620 represent lines to supplypower from the power supply portion 618 to the program run portion 610and the timer portion 617 respectively.

[0087] A program herein means a program which comprises a driversoftware such as an OS kernel or an MPEG driver or the like and anapplication software, etc. for EPG display screen or an operatingscreen.

[0088] Operations of the fourth embodiment will be described withflowcharts shown in FIGS. 7 through 9. Let us assume that an effectiveprogram is stored in the nonvolatility program storing portion A 614 andcontents of the nonvolatility program storing portion B 615 areineffective in an initial condition.

[0089] When the power switch is turned on in the standby condition (stepS701), the memory control portion 612 reads out contents of thenonvolatility program storing portion A 614 and the program run portion610 starts executing the contents of the nonvolatility program storingportion A 614 (step S702). The program run portion 610 adequatelycontrols the tuner 601, the demodulation and error correction portion602, the demultiplexer 603 and the AV decoder 604 by way of the commonbus 606, thereby setting each of the portions in a condition that it iscapable of receiving a broadcast wave (step S703).

[0090] The IRD continuously receives a program designated by a user whomanipulates a key or a remote controller on the input portion 611, andoutputs a video signal and a voice signal from the reconstruction andscreen synthesis portion 605 (step S704). When a PID which indicatesnotification information, for example PID=0040h, is received duringreception of the broadcast wave (step S705), the data, i.e.,notification data indicating “load data containing a manufacturingcompany, a model number, a program version and a program identifier(PID), as well as a transmitting network number, a transport number, atransmission start time and a transmission end time” is transmitted byway of the demultiplexer 603 to the program run portion 610 and theloader portion 607 which writes “download data containing the programidentifier (PID), the transmitting network number, the transport numberand the end time” of the notification information into an empty area ofthe nonvolatility program storing portion A 614 by way of the memorycontrol portion 612 (step S706).

[0091] The program run portion 610 compares the manufacturing companyand the model number stored in the hardware information storing portion608 with the manufacturing company and the model number contained in thesent notification information, and judges that a program is to beupdated in its IRD (step S707) and proceeds to the next step when themanufacturing company and the model number are coincident or interceptsthe program updating when manufacturing company and the model number arenot coincident (step S711).

[0092] Furthermore, the program run portion 610 compares the softwareversion number stored in the software information storing portion 609with the software version data contained in the sent notificationinformation, and judges that an updated program is to be sent (stepS708) and proceeds to the next step when the version in the sentinformation is in advance or intercepts the program updating otherwise(step S711).

[0093] By using transmission start time data, the program run portion610 reserves reception of an updated program by setting the timerportion 617 so that it informs a predetermined time a little earlierthan the transmission start time (step S709) to the timer portion 617.

[0094] Let us assume that the timer portion 617 informs thepredetermined time a little earlier, for example 1 minutes, than thetransmission start time (step S710). In the standby condition whereelectric power is not supplied to portions other than the program runportion 610 and the timer portion 617, the IRD is judged as inoperative(step S801), and power supply portion 618 turns on the power switch tosupply electric power to each portion of the IRD (step S802). If the IRDis operating, the program updating is intercepted (step S711).

[0095] The program run portion 610 calls out the notificationinformation from the nonvolatility program storing portion A 614, setsthe tuner 601 and the demodulation and error correction portion 602using data of the transmitting network number and the transport numberin the notification information, and sets the demultiplexer 603 usingdownloaded data containing the program identifier (PID) (step S803). Theprogram run portion 610 checks the tuner 601 for its receiving level andproceeds to the next step when the receiving level is larger than apredetermined value (step S804) or intercepts the program updatingotherwise (step S711).

[0096] The program run portion 610 reads out the notificationinformation containing the end time of program updating from thenonvolatility program storing portion A 614, checks whether or notanother program booking coexists before the end time (step S805) andproceeds to step S806 when another program does not coexist orintercepts the program updating when another program coexists (stepS711).

[0097] The program run portion 610 is set in a condition where it doesnot receive a remote control key operation from the input portion 611 toprevent the IRD from misoperating due to an accidental input operationduring the program updating (step S806).

[0098] The display device 613 displays a pictograph “on programupdating” which notifies the user that a program is going to be updatedand a remote control key operation is not received until the programupdating completes (step S807). The program run portion 610 startsreceiving the program to be updated as reserved (step S808). The programrun portion 610 checks received program data for transmogrificationusing the CRC check and check sum (step S901) and proceeds to step S902when the program data is free from the transmogrification or displays apictograph indicating failure of program updating on the display device613 (step S907) and sets the IRD in the standby condition when theprogram data has transmogrification and the program updating isintercepted due to the occurrence of an errors during program updating(step S906).

[0099] When the program run portion 610 judges that transmogrificationdoes not exist in the received program data in step S901, it writes thereceived program data into the nonvolatility program storing portion B615 in which the ineffective data is currently stored (step S902). Evenif power failure or another cause makes it impossible to complete thewriting of the program data into the nonvolatility program storingportion B 615 at this step, the IRD can be started with the programstored in the nonvolatility program storing portion A 614 when the powerswitch is turned on once again since the nonvolatile program storingportion A 614 or the contents of the memory control portion 612 are notchanged at all.

[0100] After completing the writing of the program data, the program runportion 610 changes the memory control portion 612 so as to make accessto the contents of the nonvolatility program storing portion B 615 (stepS903) and modifies the contents of the software information storingportion 609 into contents of the updated program version (step S904).

[0101] Upon completing the program updating as described above, thedisplay device 613 displays a pictograph indicating the completion ofthe program updating (step S905) and the IRD is set in the standbycondition (step S906). When the power switch is turned on the next time,the program which is written and updated in the nonvolatility programstoring portion B 615 is loaded and executed.

[0102] Programs are stored alternately into the two nonvolatilityprogram storing portions dependently on operating conditions of the IRDeach time a program is updated.

[0103] (Fifth Embodiment)

[0104] The fifth embodiment will be described with reference to theaccompanying drawings.

[0105] The fifth embodiment has a configuration which is the same asthat shown in FIG. 6, and operates in a sequence illustrated inflowcharts presented as FIGS. 7, 10 and 11.

[0106] Operations shown in FIG. 7 will not be described in particularsince they are the same as those of the fourth embodiment which havebeen described above.

[0107] When all the portions of the IRD are electrically energized at astep S101, the program run portion 610 judges that the IRD is operatingand proceeds to a step S102 or when all the portions of the IRD are notenergized, operations of the program run portion 610 are the same asthose at the step S802 and subsequent steps in FIG. 8 which are notdescribed once again.

[0108] At the step S102, the program run portion 610 makes access to thenotification information stored in the nonvolatility program storingportion A 614, set the tuner 601 and the demodulation and errorcorrection portion 602 using the transmitting network number andtransport number contained in the notification information, and sets thedemultiplexer 603 using the downloaded data containing the programidentifier (PID).

[0109] The program run portion 610 makes access to the notificationinformation the end time stored in the nonvolatility program storingportion A 614, checks whether or not another program booking coexistsbefore the end time (step S103) and proceeds to a step S104 when anotherprogram booking does not coexist or intercepts the program updating whenanother program booking coexists (step S711). Since programs can bereceived at the same time when a network number and a transport numberof program updating are the same as those of the program which iscurrently being received, the program run portion 610 checks whether nornot the numbers are the same (step S104) and does not update the programwhen the numbers are not the same (step S711). This is because a videosignal and a voice signal may be recorded during reception of theprograms and imprudent program updating during the operation of the IRDmay make it unstable.

[0110] When the network numbers and the transport numbers are judged asthe same by the step S104, the program run portion 610 is set in acondition where it does not receive remote control key operation signalfrom the input portion 611 (step S105). The display device 613 displaysa pictograph “on program updating” which informs the user that a programis to be updated and the program run portion 610 does not receive aremote control key operation signal until the program updating completes(step S106).

[0111] The program run portion 610 starts receiving the program to beupdated as reserved (step S107). The program run portion 610 checkswhether or not transmogrification exists in received program data usingthe CRC check and the check sum (step S111) and proceeds to a step S112when the transmogrification does not exists or intercepts the programupdating when the transmogrification exists, whereby the display device613 displays a pictograph indicating “failure of program updating” dueto an error occurring during the program updating (step S119) and theIRD is set in the standby condition (step S118).

[0112] When the transmogrification does not exist, the program runportion writes received program data into the nonvolatility programstoring portion B 615 in which ineffective data is currently written outof the two nonvolatility program storing portions (step S112). Uponcompleting the writing, the program run portion 610 is ready forreceiving the remote control key operation signal from the input portion611 (step S113) and the IRD is set in the usual operating condition.

[0113] When the user turns off the power switch on the input section 611to terminate the operations of the IRD (step S114), the program runportion 610 changes the memory control portion 612 so as to make accessto the contents of the nonvolatility program storing portion B 615 (stepS115) and modifies the contents of the software information storingportion 609 into contents of the updated program version (step S116).

[0114] Upon completing the program updating, the display device 613displays a pictograph indicating the completion of the program updating(step S117) and the IRD is returned to the standby condition (stepS118). When the power switch is turned on the next time, the updatedprogram which is written in the nonvolatility program storing portion B615 is loaded and executed.

[0115] (Sixth Embodiment)

[0116] The sixth embodiment is configured to resume a preceding programversion when the user feels that he cannot use an updated program asdescribed in the fourth or fifth embodiment conveniently or make itfamiliar with himself.

[0117]FIG. 12 shows a setting screen to modify a program to be startedup. This screen is synthesized by the reconstruction and screensynthesis portion 605 under control by the program run portion 610 onthe basis of an instruction made by the user on the input portion 611.

[0118] When the users issues an instruction OK by operating a remotecontroller or a key on the input section 611 in response to a question“Change program ?,” the memory control portion 612 modifies settings sothat a program is to be loaded, at a power on time, from the nonvolatileprogram storing portion different from the nonvolatile storing portionwhich stores a program currently being executed. Another program isloaded and started up when the power switch is turned on once againafter it is turned off.

[0119] By repeating these operations on the setting screen, the user canselect and execute two kinds of programs.

[0120] It is needless to say that a program is not updated when it isrequested to update a program having a version which is newer than thatof a program currently being updated but is the same as that of aprogram stored in the other nonvolatile program storing portion.

[0121] As understood from the foregoing description, the presentinvention makes it possible to prevent a system from misoperating due toincomplete program updating.

[0122] Furthermore, the present invention makes it possible to prevent adata processor from operating unnaturally due to program updating whichis made while it is operating.

[0123] Moreover, the present invention makes it possible to selectivelyuse a plurality of programs as designated by the user.

What is claimed is:
 1. A data processor operating on the basis of aprogram stored in first memory means, comprising: receiving means forreceiving an updating program transmitted from outside; comparing meansfor comparing a version of the program stored in said first memory meanswith that of said upgrading program; and control means for storing saidupgrading program into second memory means different from said firstmemory means when the version of said upgrading program is newer thanthat of the program stored in said first memory means.
 2. The dataprocessor according to claim 1, further comprising: instructing meansfor instructing start-up of the data processor; designating means fordesignating a program to be read out when the data processor is startedup as instructed by said instructing means; and changing means forchanging the designation by said designating means from the programstored in said first memory means to a program stored in said secondmemory means.
 3. The data processor according to claim 1, furthercomprising check means for checking the received upgrading program forits operation.
 4. The data processor according to claim 1, wherein saidfirst memory means and said second memory means comprise flash memories.5. A data processor comprising having processing means which processesdata sent from outside on the basis of a program stored in first memorymeans and outputs the data to an output device comprising: receivingmeans for receiving an upgrading program sent from outside; controlmeans for storing the received upgrading program into second memorymeans different from said first memory means; and changing means forchanging processing by said processing means on the basis of the programstored in said first memory means to processing by said processing meanson the basis of the upgrading program stored in said second memorymeans.
 6. The data processor according to claim 5, further comprising:comparing means for comparing a version of the program stored in saidfirst memory means with that of said upgrading program; and controlmeans for storing said received upgrading program into second memorymeans different from said first memory means when said comparing meansjudges that the version of said upgrading program is newer than that ofthe program stored in said first memory means.
 7. The data processoraccording to claim 5, wherein control is executed by said control meanswhen processing is not executed by said processing means.
 8. The dataprocessor according to claim 7, wherein control is executed by saidcontrol means when data being processed by said processing means andsaid updating program are sent from the same source.
 9. The dataprocessor according to claim 5, further comprising a selecting means forselecting a program to be executed by said processing means from eitherof said first memory means or said second memory means as designated bya user.
 10. The data processor according to claim 5, further comprisinga detecting means for defecting a scheduled operation time of saidprocessing means so that said control is executed by said control meanson the basis of said detected operation time.
 11. The data processoraccording to claim 5, wherein said output device comprises a displaydevice.
 12. A data processor having processing means which processesdata sent from outside on the basis of a program stored in memory meansand outputs the data to an output device comprising: judging means forjudging whether or not processing is executed by said processing means;receiving means for receiving an updating program sent from outside;memory control means for storing said received program into the memorymeans when said judging means that processing is not executed by saidprocessing means; and processing control means for controlling saidprocessing means on the basis of the updating program stored in saidmemory means.
 13. The data processor according to claim 12, wherein saidmemory control means stores said updating program into a memory areadifferent from that of the preliminarily stored program.
 14. The dataprocessor according to claim 12, wherein control is executed by saidmemory control means when data being processed by said processing meansand said upgrading program are sent from the same source.
 15. The dataprocessor according to claim 12, further comprising detecting meanswhich detects a scheduled operation time of said processing means,wherein control is executed by said memory control means on the basis ofsaid detected operation time.
 16. The data processor according to claim12, wherein said output device comprises a display device.
 17. A programupdating method for a data processor operating on the basis of a programstored in first memory means, comprising the steps of: receiving anupdating program sent from outside; comparing a version of the programstored in said first memory means with aversion of said updatingprogram; and storing said updating program into second memory meansdifferent from said first memory means when the comparison indicatesthat the version of said updating program is newer than that of theprogram stored in said first memory means.
 18. The program updatingmethod according to claim 17, wherein a program to be read out to startup the data processor is changed from the program stored in said firstmemory means to the program stored in said second memory means.
 19. Theprogram updating method according to claim 17, wherein said receivedupdating program is checked for its operation and stored into saidsecond memory means.
 20. The program updating method according to claim17, wherein said first memory means and said second memory meanscomprise flash memories.
 21. A program updating method for a dataprocessor having processing means which processes data sent from outsideon the basis of a program stored in first memory means, comprising thesteps of: receiving an updating program sent from outside; storing saidreceived updating program into second memory means different from saidfirst memory means; and changing processing by said processing means onthe basis of the program stored in said first memory means to processingby said processing means on the basis of the updating program stored insaid second memory means.
 22. The program updating method according toclaim 21, wherein a version of said program stored in said first memorymeans is compared with that of the updating program, and wherein saidreceived updating program is stored into second memory means differentfrom said first memory means when the comparison indicates that theversion of the updating program is newer than that of the program storedin said first memory means.
 23. The program updating method according toclaim 21, wherein a program is stored into said second memory means whenprocessing is not executed by said processing means.
 24. The programupdating method according to claim 23, wherein a program is stored intosaid second memory means when data being processed by said processingmeans and said updating program are sent from the same source.
 25. Theprogram updating method according to claim 21, wherein a program to beexecuted by said processing means is selected from said first memorymeans or said second memory means as designated by a user.
 26. Theprogram updating method according to claim 21, wherein a scheduledoperation time of said processing means is detected and a program isstored into said second memory means on the basis of a detectedoperation time.
 27. The program updating method according to claim 21,wherein said output device comprises a display device.
 28. A programupdating method for a data processor which processes data sent fromoutside on the basis of a program stored in memory means and outputs thedata to an output device, comprising the steps of: judging whether ornot processing is executed by said processing means; storing an updatingprogram sent from outside into memory means when the processing is notexecuted by said processing means; and controlling said processing meanson the basis of the updating program stored in said memory means. 29.The program updating method according to claim 28, wherein said updatingprogram is stored into a memory area different from that of thepreliminarily stored program.
 30. The program updating method accordingto claim 28, wherein the updating program is stored into the memorymeans when data being processed by said processing means and saidupdating program are sent from the same source.
 31. The program updatingmethod according to claim 28, wherein a scheduled operation time of saidprocessing means is detected and the updating program sent from outsideis stored into the memory means on the basis of the detected operationtime.
 32. The program updating method according to claim 28, whereinsaid output device comprises a display device.
 33. A memory medium to beused in a data processor which operates on the basis of a program storedin first memory means having the following steps to update a programcomprising the steps of: receiving an updating program sent fromoutside; comparing a version of the program stored in said first memorymeans with that of said updating program; and storing said updatingprogram into second memory means different from said first memory meanswhen the version of said updating program is newer than that of theprogram stored in said first memory means.
 34. A memory medium to beused in a data processor having processing means which processes datasent from outside on the basis of a program stored in first memory meansand outputs the data to an output device having the following steps toupdate a program, comprising the steps of: receiving an updating programsent from outside by receiving means; storing said received updatingprogram into second memory means different from said first memory means;and changing processing by said processing means on the basis of theprogram stored in said first memory means to processing by saidprocessing means on the basis of the updating program stored in saidsecond memory means.
 35. A memory means to be used in a data processorhaving processor means which processes data sent from outside on thebasis of a program stored in memory means and outputs the data to anoutput device having the following steps to update a program, comprisingthe steps of: judging whether or not processing is executed by saidprocessing means; storing an updating program sent from outside intosaid memory means when the processing is not executed by said processingmeans; and controlling said processing means on the basis of theupdating program stored in said memory means.